import { Data, http } from '@/utils/http'

// 收货相关
const AUTH_BASE_URL = '/core/inspectionReport'

const GRreportApi = {
  /**
   * @param type 检测类型 1=自检 2=送检
   * @returns {Promise<TBdQcItem[]>} 返回最新的一次质检记录列表
   */
  getLastReport: (type: string) => {
    return http<TBdQcItem[]>({
      url: `${AUTH_BASE_URL}/getLastReport?type=${type}`,
      method: 'GET',
    })
  },
  saveReport: (data: QualityInspectionReport) => {
    return http({
      url: `${AUTH_BASE_URL}/save`,
      method: 'POST',
      data,
    })
  },
  /**
   * 根据样品名称获取最后一次质检记录
   * @param sampleName 样品名称
   */
  getLastReportBySampleName: (params: QualityInspectionReportParams) => {
    return http<TBdQcItem[]>({
      url: `${AUTH_BASE_URL}/getLastReportBySampleName`,
      method: 'POST',
      data: params,
    })
  },
}
export default GRreportApi

/**
 * 获取最新的一次质检记录列表
 */
export interface TBdQcItem {
  /**
   * 检测分类 1=蔬果 2=肉类
   */
  category: number
  /**
   * 检测项目编码
   */
  code: string //检测项目编码
  qcItemCode: string
  /**
   * id
   */
  id: number
  /**
   * 检测数量 单位kg 需要>=数量
   */
  inspectQty: number //检测数量 单位kg 需要>=数量
  /**
   * 检测类型 1=自检 2=送检
   */
  inspectType: number //检测类型 1=自检 2=送检
  /**
   * 检测员
   */
  inspector: string //检测员
  /**
   * 检测仪器
   */
  instrument: string //检测仪器
  /**
   * 检测频次
   */
  interval: string //检测频次
  /**
   * 检测名称
   */
  name: string //检测名称
  /**
   * 检测依据
   */
  refInspection: string //检测依据
  /**
   * 检测选项(Json存储)
   */
  refOption: string //检测选项(Json存储)
  /**
   * 检测选项类型 input=输入库 check=单选 select=下拉
   */
  refType: string //检测选项类型 input=输入库 check=单选 select=下拉
  /**
   * 检测标准
   */
  refValue: string //检测标准
  /**
   * 备注
   */
  remark: string //备注
  /**
   * 异常处理
   */
  solution: string //异常处理
  /**
   * 检测类别
   */
  type: string //检测类别
}

/**
 * 新增质检记录请求参数
 */
export interface QualityInspectionReport {
  /** 实际检测数量 */
  actualQuantity: number
  /** 分类（与TBdQcItem中的category对应） */
  category: string
  /** 企业编码 */
  companyCode: string
  /** 企业名称 */
  companyName: string
  /** 检测数量（单位kg） */
  inspectQty: number
  /** 质检项明细列表 */
  itemCodeList: TBdQcItem[]
  /** 订单类型 */
  orderType: number
  /** 父级编号 */
  parentCode: string
  /** 产品编码 */
  productCode: string
  /** 产品名称 */
  productName: string
  /** 采购数量 */
  purchaseQty: number
  // /** 合格数量 */
  // qualifiedQuantity: number
  // /** 合格率 */
  // qualifiedRate: number
  /** 采购日期 */
  purchaseDate: string
  /** 质检类型 0-常规 1-专项 */
  qualityType: number
  /** 备注信息 */
  remark: string
  /** 类型（与TBdQcItem.type对应） */
  type: number
  /** 单位 */
  unit: string
  sampleName: string
}

/**
 * 质检项接口
 */
interface ItemCode {
  /** 分类 */
  category: number
  /** 质检项编码 */
  code: string
  /** 明细项ID */
  id: number
  /** 质检项名称 */
  name: string
  /** 上级编码 */
  parentCode: string
  /** 关联的质检项编码 */
  qcItemCode: string
  /** 质检结果 */
  qcResult: string
  /** 实际检测值 */
  qcValue: string
  /** 检测选项配置（JSON格式） */
  refOption: string
  /** 输入类型 input/check/select */
  refType: string
  /** 检测标准值 */
  refValue: string
  /** 备注 */
  remark: string
  /** 检测类别 */
  type: string
}

/**
 * 获取质检记录请求参数
 */
export interface QualityInspectionReportParams {
  sampleName: string
  type: number
}
